package com.ekuaitu.kuaitu.api;


import com.ekuaitu.kuaitu.bean.AccountBean;
import com.ekuaitu.kuaitu.bean.AdPopBean;
import com.ekuaitu.kuaitu.bean.AdTopBean;
import com.ekuaitu.kuaitu.bean.AlipayPreBean;
import com.ekuaitu.kuaitu.bean.AwardBean;
import com.ekuaitu.kuaitu.bean.BaseBean;
import com.ekuaitu.kuaitu.bean.BikeAroundBean;
import com.ekuaitu.kuaitu.bean.BikeLogBean;
import com.ekuaitu.kuaitu.bean.BikeOrderDetailBean;
import com.ekuaitu.kuaitu.bean.BikePayBean;
import com.ekuaitu.kuaitu.bean.BikeRentBean;
import com.ekuaitu.kuaitu.bean.CancelOrder;
import com.ekuaitu.kuaitu.bean.CarListBean;
import com.ekuaitu.kuaitu.bean.CarOrderDetailBean;
import com.ekuaitu.kuaitu.bean.CarPayBean;
import com.ekuaitu.kuaitu.bean.ChangeInfoBean;
import com.ekuaitu.kuaitu.bean.ChargeDetailBean;
import com.ekuaitu.kuaitu.bean.CheckCarOrderBean;
import com.ekuaitu.kuaitu.bean.CheckSetupBean;
import com.ekuaitu.kuaitu.bean.CityDetailBean;
import com.ekuaitu.kuaitu.bean.CommitCertificateBean;
import com.ekuaitu.kuaitu.bean.CommitInvoiceBean;
import com.ekuaitu.kuaitu.bean.ComplaintsBean;
import com.ekuaitu.kuaitu.bean.ComplaintsTagBean;
import com.ekuaitu.kuaitu.bean.ConfirmCertifyBean;
import com.ekuaitu.kuaitu.bean.DepositStatus;
import com.ekuaitu.kuaitu.bean.DropOffBikeBean;
import com.ekuaitu.kuaitu.bean.DropOffCarBean;
import com.ekuaitu.kuaitu.bean.EnteAccountPayBean;
import com.ekuaitu.kuaitu.bean.ExchangeCouponBean;
import com.ekuaitu.kuaitu.bean.FenceData;
import com.ekuaitu.kuaitu.bean.FestivalBean;
import com.ekuaitu.kuaitu.bean.GetRemindBean;
import com.ekuaitu.kuaitu.bean.HeartBean;
import com.ekuaitu.kuaitu.bean.InitBean;
import com.ekuaitu.kuaitu.bean.InviteFriendsBean;
import com.ekuaitu.kuaitu.bean.JudgmentBean;
import com.ekuaitu.kuaitu.bean.LoginBean;
import com.ekuaitu.kuaitu.bean.LogoffBean;
import com.ekuaitu.kuaitu.bean.MemberCardDetailBean;
import com.ekuaitu.kuaitu.bean.MemberCardListBean;
import com.ekuaitu.kuaitu.bean.MsgRedBean;
import com.ekuaitu.kuaitu.bean.MyCardBean;
import com.ekuaitu.kuaitu.bean.MyCouponBean;
import com.ekuaitu.kuaitu.bean.MyInvoiceBean;
import com.ekuaitu.kuaitu.bean.MyInvoiceDetailBean;
import com.ekuaitu.kuaitu.bean.MyInvoiceHistoryBean;
import com.ekuaitu.kuaitu.bean.MyMessageBean;
import com.ekuaitu.kuaitu.bean.MyRouteBean;
import com.ekuaitu.kuaitu.bean.MyWalletBean;
import com.ekuaitu.kuaitu.bean.NearCarBean;
import com.ekuaitu.kuaitu.bean.OpenBikeBean;
import com.ekuaitu.kuaitu.bean.OperateBean;
import com.ekuaitu.kuaitu.bean.OrderDetailBean;
import com.ekuaitu.kuaitu.bean.ParkBean;
import com.ekuaitu.kuaitu.bean.ParkDetailBean;
import com.ekuaitu.kuaitu.bean.PersonalCenterBean;
import com.ekuaitu.kuaitu.bean.PersonalInfoBean;
import com.ekuaitu.kuaitu.bean.PlaceOrderBean;
import com.ekuaitu.kuaitu.bean.PraizeMarqueeBean;
import com.ekuaitu.kuaitu.bean.QueryLockBean;
import com.ekuaitu.kuaitu.bean.RechargeAdBean;
import com.ekuaitu.kuaitu.bean.RedBikeHotSpotInfoBean;
import com.ekuaitu.kuaitu.bean.ResultBean;
import com.ekuaitu.kuaitu.bean.ReturnDepositBean;
import com.ekuaitu.kuaitu.bean.SettlementBikeDetailBean;
import com.ekuaitu.kuaitu.bean.SettlementDetailBean;
import com.ekuaitu.kuaitu.bean.ShakeResultBean;
import com.ekuaitu.kuaitu.bean.SmsCodeBean;
import com.ekuaitu.kuaitu.bean.UnFinishOrderBean;
import com.ekuaitu.kuaitu.bean.UploadImageBean;
import com.ekuaitu.kuaitu.bean.ValidateBikeBean;
import com.ekuaitu.kuaitu.bean.ViolRecordBean;
import com.ekuaitu.kuaitu.bean.WXPreBean;

import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

public interface ApiService {

    //初始化app
    @FormUrlEncoded
    @POST("init/init-app.json")
    Call<InitBean> initApp(@FieldMap Map<String, String> map, @Field("phoneModel") String phoneModel, @Field("style") String style,
                           @Field("longitude") String longitude, @Field("latitude") String latitude);

    //获取已开通城市信息
    @FormUrlEncoded
    @POST("city/getCityInfo/v2")
    Call<CityDetailBean> getCityInfo(@FieldMap Map<String, String> map);

    //弹窗广告
    @FormUrlEncoded
    @POST("promote/getPromoteByPopup.json")
    Call<AdPopBean> getPopAd(@FieldMap Map<String, String> map);

    //顶部广告
    @FormUrlEncoded
    @POST("v/message/gain-first-page-message.json")
    Call<AdTopBean> getTopAd(@FieldMap Map<String, String> map);

    //消息列表
    @FormUrlEncoded
    @POST("v/message/gain-my-message.json")
    Call<MyMessageBean> getMsg(@FieldMap Map<String, String> map, @Field("pageNo") String page, @Field("pageSize") String pageSize);

    //消息已读
    @FormUrlEncoded
    @POST("v/message/set-to-read.json")
    Call<ResultBean> readMsg(@FieldMap Map<String, String> map, @Field("messageId") String messageId);

    //全部消息已读
    @FormUrlEncoded
    @POST("v/message/set-to-read-all.json")
    Call<ResultBean> readAllMsg(@FieldMap Map<String, String> map);

    //主页个人中心小红点
    @FormUrlEncoded
    @POST("v/message/is-exist-red.json")
    Call<MsgRedBean> getMsgRed(@FieldMap Map<String, String> map);


    //发短信
    @FormUrlEncoded
    @POST("message/send-message.json")
    Call<SmsCodeBean> sendSms(@FieldMap Map<String, String> map, @Field("phoneNum") String phoneNum);


    @FormUrlEncoded
    @POST("login/mobile-login.json")
    Call<LoginBean> login(@FieldMap Map<String, String> map, @Field("phoneNum") String phoneNum, @Field("code") String code,
                          @Field("longitude") String longitude, @Field("latitude") String latitude, @Field("deviceToken") String deviceToken);


    @FormUrlEncoded
    @POST("v/user/update-user-info.json")
    Call<CommitCertificateBean> commitAvatar(@FieldMap Map<String, String> map, @Field("nick") String nick, @Field("head") String head);

    //修改个人信息
    @FormUrlEncoded
    @POST("v/user/update-user-info.json")
    Call<ChangeInfoBean> getChangePersonalInfo(@FieldMap Map<String, String> map, @Field("nick") String nick, @Field("gender") String gender, @Field("dateBirth") String dateBirth);

    //汽车资格状态
    @FormUrlEncoded
    @POST("v/user/status.json")
    Call<ConfirmCertifyBean> confirmCertify(@FieldMap Map<String, String> map);

    //单车资格状态
    @FormUrlEncoded
    @POST("v/user/validate-bike-user.json")
    Call<OperateBean> certifyBikePlaceOrder(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("v/user/logout.json")
    Call<LogoffBean> logoff(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("v/account/my-account.json")
    Call<AccountBean> getMyAccount(@FieldMap Map<String, String> map);


    //展示电车网点
    @FormUrlEncoded
    @POST("park/get-information.json")
    Call<ParkBean> getParks(@FieldMap Map<String, String> map, @Field("page") String page, @Field("pageSize") String pageSize);

    //电车网点详情
    @FormUrlEncoded
    @POST("car/get-information.json")
    Call<ParkDetailBean> getParkDetail(@FieldMap Map<String, String> map, @Field("parkId") String parkId);

    //电车附近车辆
    @FormUrlEncoded
    @POST("park/get-nearby.json")
    Call<NearCarBean> getNearCar(@FieldMap Map<String, String> map, @Field("longitude") String longitude, @Field("latitude") String latitude);

    //电车网点列表
    @FormUrlEncoded
    @POST("park/get-all.json")
    Call<CarListBean> getCarList(@FieldMap Map<String, String> map, @Field("longitude") String longitude, @Field("latitude") String latitude);

    //操作车辆
    @FormUrlEncoded
    @POST("v/car/call-car.json")
    Call<OperateBean> findCar(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("carId") String carId,
                              @Field("longitude") String longitude, @Field("latitude") String latitude);

    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/search.json")
    Call<OperateBean> findBike(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("bikeId") String bikeId, @Field("longitude") String longitude, @Field("latitude") String latitude);


    @FormUrlEncoded
    @POST("v/car/open-car-door.json")
    Call<OperateBean> openCarDoor(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("carId") String carId, @Field("longitude") String longitude,
                                  @Field("latitude") String latitude, @Field("force") String force);


    @FormUrlEncoded
    @POST("v/car/close-car-door.json")
    Call<OperateBean> closeCarDoor(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("carId") String carId, @Field("longitude") String longitude,
                                   @Field("latitude") String latitude, @Field("force") String force);

    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/lock.json")
    Call<OperateBean> closeBike(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("serialNumber") String serialNumber, @Field("longitude") String longitude,
                                @Field("latitude") String latitude, @Field("force") String force);


    @FormUrlEncoded
    @POST("v/car/return-car.json")
    Call<DropOffCarBean> dropOffCar(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("carId") String carId, @Field("parkId") String parkId);

    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/return.json")
    Call<DropOffBikeBean> dropOffBike(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("bikeId") String bikeId, @Field("longitude") String longitude,
                                      @Field("latitude") String latitude, @Field("lockType") String lockType, @Field("battery") String battery,
                                      @Field("errorCode") String errorCode);

    //展示单车
    @FormUrlEncoded
    @POST("kuaitu-bike/bike/around.json")
    Call<BikeAroundBean> getBikes(@FieldMap Map<String, String> map, @Field("longitude") String longitude, @Field("latitude") String latitude);


    //获取任务车热区信息
    @FormUrlEncoded
    @POST("kuaitu-bike/bike/redPackageHotspotList.json")
    Call<RedBikeHotSpotInfoBean> getRedBikeHotSpotInfo(@FieldMap Map<String, String> map, @Field("latitude") String latitude, @Field("longitude") String longitude);

    //单车是否可租用
    @FormUrlEncoded
    @POST("kuaitu-bike/v/bike/validationBike")
    Call<ValidateBikeBean> validateBike(@FieldMap Map<String, String> map, @Field("licenseTag") String licenseTag, @Field("latitude") String latitude, @Field("longitude") String longitude);


    //租用电车
    @FormUrlEncoded
    @POST("v/order/add.json")
    Call<PlaceOrderBean> rentCar(@FieldMap Map<String, String> map, @Field("carId") String carId, @Field("onParkId") String onParkId, @Field("isCompanyByRisk") String isCompanyByRisk);

    //租用单车
    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/add.json")
    Call<BikeRentBean> rentBike(@FieldMap Map<String, String> map, @Field("carId") String bikeId, @Field("longitude") String longitude, @Field("latitude") String latitude);


    //无预约GPS开锁
    @FormUrlEncoded
    @POST("kuaitu-bike/v/bike/scanUnlock.json")
    Call<OpenBikeBean> openBike(@FieldMap Map<String, String> map, @Field("bikeId") String bikeId, @Field("lockType") String lockType, @Field("latitude") String latitude, @Field("longitude") String longitude);

    //存在订单时GPS开锁
    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/open.json")
    Call<OperateBean> openBikeInUse(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("serialNumber") String bikeId,
                                    @Field("longitude") String longitude, @Field("latitude") String latitude,
                                    @Field("force") String force, @Field("lockType") String lockType);

    //查询GPS开锁状态结果
    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/bike-info.json")
    Call<QueryLockBean> queryLockInfo(@FieldMap Map<String, String> map, @Field("bikeId") String bikeId, @Field("isSelect") String isSelect);


    //查询蓝牙锁信息
    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/bike-info.json")
    Call<QueryLockBean> requestBTBikeInfo(@FieldMap Map<String, String> map, @Field("bikeId") String bikeId, @Field("isSelect") String isSelect);

    //无预约请求蓝牙开锁
    @FormUrlEncoded
    @POST("kuaitu-bike/v/bike/scanUnlock.json")
    Call<OpenBikeBean> requestOpenBtBike(@FieldMap Map<String, String> map, @Field("bikeId") String bikeId, @Field("lockType") String lockType, @Field("battery") String battery,
                                         @Field("longitude") String longitude, @Field("latitude") String latitude);

    //有预约请求蓝牙开锁
    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/open.json")
    Call<OpenBikeBean> requestOpenBtBikeInUse(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("serialNumber") String bikeId, @Field("force") String force,
                                              @Field("lockType") String lockType, @Field("battery") String battery, @Field("longitude") String longitude, @Field("latitude") String latitude);

    //更新蓝牙锁信息
    @FormUrlEncoded
    @POST("kuaitu-bike/bike/updateBluetoothLockInfo.json")
    Call<OperateBean> sendBTLockInfo(@FieldMap Map<String, String> map, @Field("bikeId") String bikeId, @Field("lockType") String lockType, @Field("battery") String battery,
                                     @Field("longitude") String longitude, @Field("latitude") String latitude, @Field("lockStatus") String lockStatus,
                                     @Field("operationStatus") String operationStatus, @Field("orderId") String orderId, @Field("operationType") String operationType);


    //蓝牙锁关锁提交信息
    @FormUrlEncoded
    @POST("kuaitu-bike/bike/appReportBikeLocation.json")
    Call<ResultBean> closeLockSendLocation(@FieldMap Map<String, String> map, @Field("bikeId") String bikeId, @Field("bikeNo") String bikeNo,
                                           @Field("longitude") String longitude, @Field("latitude") String latitude, @Field("orderId") String orderId);

    @FormUrlEncoded
    @POST("v/order/gain-list.json")
    Call<MyRouteBean> getOrderList(@FieldMap Map<String, String> map, @Field("pageNo") String page, @Field("pageSize") String pageSize, @Field("orderBusinessType") String orderBusinessType);

    @FormUrlEncoded
    @POST("v/order/cancel.json")
    Call<CancelOrder> cancelCarOrder(@FieldMap Map<String, String> map, @Field("orderId") String orderId);

    @FormUrlEncoded
    @POST("v/order/check-auto-cancel.json")
    Call<CheckCarOrderBean> checkAutoCancel(@FieldMap Map<String, String> map, @Field("orderId") String orderId);

    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/cancel.json")
    Call<CancelOrder> cancelBikeOrder(@FieldMap Map<String, String> map, @Field("orderId") String orderId);

    @FormUrlEncoded
    @POST("v/order/get-unfinish.json")
    Call<UnFinishOrderBean> getUnFinishOrder(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("v/order/detail.json")
    Call<OrderDetailBean> getOrderDetail(@FieldMap Map<String, String> map, @Field("orderId") String orderId);

    //优惠券
    @FormUrlEncoded
    @POST("v/coupon/add-to-user.json")
    Call<ExchangeCouponBean> exchangeCoupon(@FieldMap Map<String, String> map, @Field("code") String code);

    //商户卡券
    @FormUrlEncoded
    @POST("v/coupon/list-card-coupons.json")
    Call<MyCardBean> getCard(@FieldMap Map<String, String> map, @Field("pageNo") String page, @Field("pageSize") String pageSize);

    @FormUrlEncoded
    @POST("v/coupon/list-v2.json")
    Call<MyCouponBean> getAllCoupon(@FieldMap Map<String, String> map, @Field("pageNo") String pageNo, @Field("pageSize") String pageSize, @Field("couponsStatus") String couponsStatus);

    //获取上传图片的key和token
    @FormUrlEncoded
    @POST("auth/img.json")
    Call<UploadImageBean> uploadImage(@FieldMap Map<String, String> map, @Field("ext") String ext, @Field("size") String size,
                                      @Field("width") String width, @Field("height") String height, @Field("type") String type, @Field("businessType") String businessType, @Field("source") String source);

    //提交身份证接口
    @FormUrlEncoded
    @POST("v/user/examine.json")
    Call<CommitCertificateBean> confirmIdCardCommit(@FieldMap Map<String, String> map, @Field("userName") String userName, @Field("identityCardNum") String identityCardNum);

    //提交驾驶证接口
    @FormUrlEncoded
    @POST("v/user /license-upload.json")
    Call<CommitCertificateBean> confirmDrivingCommit(@FieldMap Map<String, String> map, @Field("identityPositivePicture") String identityPositivePicture,
                                                     @Field("identityOppositePicture") String identityOppositePicture, @Field("licensePicture") String licensePicture);


    //汽车结算详情
    @FormUrlEncoded
    @POST("v/order/pay-page-v2.json")
    Call<SettlementDetailBean> settlementDetail(@FieldMap Map<String, String> map, @Field("orderId") String orderId);

    //单车结算详情
    @FormUrlEncoded
    @POST("kuaitu-bike/v/order/bike/pay-info.json")
    Call<SettlementBikeDetailBean> settlementBikeDetail(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("bikeId") String bikeId);

    //支付宝保证金
    @FormUrlEncoded
    @POST("v/account/recharge-bail.json")
    Call<AlipayPreBean> aliPayDeposit(@FieldMap Map<String, String> map, @Field("money") String money,
                                      @Field("style") String style, @Field("longitude") String longitude, @Field("latitude") String latitude, @Field("bailType") String bailType);


    //微信保证金
    @FormUrlEncoded
    @POST("v/account/recharge-bail.json")
    Call<WXPreBean> weChatDeposit(@FieldMap Map<String, String> map, @Field("money") String money,
                                  @Field("style") String style, @Field("longitude") String longitude, @Field("latitude") String latitude, @Field("bailType") String bailType);

    //支付宝充值
    @FormUrlEncoded
    @POST("v/account/recharge.json")
    Call<AlipayPreBean> aliPayRecharge(@FieldMap Map<String, String> map, @Field("money") String money,
                                       @Field("style") String style, @Field("longitude") String longitude, @Field("latitude") String latitude);


    //微信充值
    @FormUrlEncoded
    @POST("v/account/recharge.json")
    Call<WXPreBean> weChatRecharge(@FieldMap Map<String, String> map, @Field("money") String money,
                                   @Field("style") String style, @Field("longitude") String longitude, @Field("latitude") String latitude);

    /**
     * 汽车订单个人账户支付
     */
    @FormUrlEncoded
    @POST("v/order/pay-car-order")
    Call<CarPayBean> payCarOrder(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("couponId") String couponId);

    /**
     * 单车订单个人账户支付
     */
    @FormUrlEncoded
    @POST("v/order/pay-bike-order?")
    Call<BikePayBean> payBikeOrder(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("couponId") String couponId);

    //汽车订单支付宝支付
    @FormUrlEncoded
    @POST("v/order/pay-by-ali-or-wechat.json")
    Call<AlipayPreBean> aliPayPre(@FieldMap Map<String, String> map, @Field("couponId") String couponId, @Field("orderId") String orderId, @Field("style") String style);

    //汽车订单微信支付
    @FormUrlEncoded
    @POST("v/order/pay-by-ali-or-wechat.json")
    Call<WXPreBean> weChatPre(@FieldMap Map<String, String> map, @Field("couponId") String couponId, @Field("orderId") String orderId, @Field("style") String style);

    //个人账户支付
    @FormUrlEncoded
    @POST("v/order/pay-person-account.json")
    Call<AccountBean> accountPay(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("couponId") String couponId);


    //企业客户账户支付
    @FormUrlEncoded
    @POST("v/account/customer-pay.json")
    Call<EnteAccountPayBean> enterpriseAccountPay(@FieldMap Map<String, String> map, @Field("orderId") String orderId);

    //充值明细
    @FormUrlEncoded
    @POST("v/account/recharge-list.json")
    Call<ChargeDetailBean> getChargeDetail(@FieldMap Map<String, String> map, @Field("pageNo") String pageNo, @Field("pageSize") String pageSize);

    @FormUrlEncoded
    @POST("share/share-invite.json")
    Call<InviteFriendsBean> inviteFriends(@FieldMap Map<String, String> map, @Field("type") String type);

    //获取投诉建议
    @FormUrlEncoded
    @POST("v/complaint/tags.json")
    Call<ComplaintsTagBean> getComplaintsTag(@FieldMap Map<String, String> map, @Field("businessType") String businessType);

    //投诉建议
    @FormUrlEncoded
    @POST("v/complaint/add/v2.json")
    Call<ComplaintsBean> commitComplaints(@FieldMap Map<String, String> map, @Field("content") String content,
                                          @Field("pictures") String key, @Field("businessType") String businessType, @Field("orderId") String orderId,
                                          @Field("licenseTag") String licenseTag, @Field("latitude") String latitude, @Field("longitude") String longitude,
                                          @Field("tags") String tags);

    //个人中心
    @FormUrlEncoded
    @POST("v/user/center-info")
    Call<PersonalCenterBean> getMyInfoData(@FieldMap Map<String, String> map);

    //已购买的优惠卡详情
    @FormUrlEncoded
    @POST("v/concession/card/my-concession-card.json")
    Call<MemberCardDetailBean> getMemberCardDetail(@FieldMap Map<String, String> map);

    //待购买优惠卡列表
    @FormUrlEncoded
    @POST("concession/card/list.json")
    Call<MemberCardListBean> getMemberCardList(@FieldMap Map<String, String> map);


    //微信购买的优惠卡
    @FormUrlEncoded
    @POST("v/account/buy-concession-card.json")
    Call<WXPreBean> weChatMemberCardBuy(@FieldMap Map<String, String> map, @Field("style") String style, @Field("concessionCardId") String concessionCardId);


    //支付宝购买的优惠卡
    @FormUrlEncoded
    @POST("v/account/buy-concession-card.json")
    Call<AlipayPreBean> aliPayMemberCardBuy(@FieldMap Map<String, String> map, @Field("style") String style, @Field("concessionCardId") String concessionCardId);


    //退还保证金
    @FormUrlEncoded
    @POST("v/account/return-bail.json")
    Call<ReturnDepositBean> returnDeposit(@FieldMap Map<String, String> map, @Field("bailType") String bailType);

    //单车详情
    @FormUrlEncoded
    @POST("v/order/order-detail.json")
    Call<BikeOrderDetailBean> getBikeDetail(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("orderBusinessType") String orderBusinessType);

    //汽车详情
    @FormUrlEncoded
    @POST("v/order/order-detail.json")
    Call<CarOrderDetailBean> getCarDetail(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("orderBusinessType") String orderBusinessType);

    //我的钱包
    @FormUrlEncoded
    @POST("v/account/my-wallet.json")
    Call<MyWalletBean> getWallet(@FieldMap Map<String, String> map);

    //保证金状态
    @FormUrlEncoded
    @POST("v/account/check-return-bail.json")
    Call<DepositStatus> getDepositStatus(@FieldMap Map<String, String> map);


    //发票列表
    @FormUrlEncoded
    @POST("v/invoice/list.json")
    Call<MyInvoiceBean> getInvoiceList(@FieldMap Map<String, String> map, @Field("pageNo") String page, @Field("pageSize") String pageSize);

    //提交发票
    @FormUrlEncoded
    @POST("v/invoice/apply-invoice.json")
    Call<CommitInvoiceBean> commitInvoice(@FieldMap Map<String, String> map);

    //开票历史
    @FormUrlEncoded
    @POST("v/invoice/invoice-history.json")
    Call<MyInvoiceHistoryBean> getInvoiceHistory(@FieldMap Map<String, String> map);

    //开票详情
    @FormUrlEncoded
    @POST("v/invoice/invoice-detail.json")
    Call<MyInvoiceDetailBean> getInvoiceDetail(@FieldMap Map<String, String> map, @Field("invoiceId") String invoiceId);

    //节日页面开关
    @FormUrlEncoded
    @POST("openRed.php")
    Call<FestivalBean> festivalOpen(@FieldMap Map<String, String> map);


    //心跳
    @FormUrlEncoded
    @POST("heart.php")
    Call<HeartBean> sendHeart(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("bikeId") String bikeId, @Field("longitude") String longitude,
                              @Field("latitude") String latitude, @Field("lockType") String lockType, @Field("battery") String battery);

    //单车复位结果统计
    @FormUrlEncoded
    @POST("resetCount.php")
    Call<HeartBean> sendRepairResult(@FieldMap Map<String, String> map, @Field("action_type") String action_type, @Field("order_type") String order_type,
                                     @Field("lock_type") String lock_type, @Field("device_brand") String device_brand, @Field("order_id") String order_id,
                                     @Field("bike_id") String bike_id, @Field("os") String os, @Field("version") String version);

    //请求GPS单车复位
    @FormUrlEncoded
    @POST("kuaitu-bike/bike/exeCMDForLockByUser.json")
    Call<OperateBean> repairGpsBike(@FieldMap Map<String, String> map, @Field("orderId") String orderId,
                                    @Field("bikeId") String bikeId, @Field("lockType") String lockType, @Field("cmd") String cmd,
                                    @Field("latitude") String latitude, @Field("longitude") String longitude);

    //单车日志记录
    @FormUrlEncoded
    @POST("kuaitu-bike/bike/appLog.json")
    Call<BikeLogBean> commitBikeLog(@FieldMap Map<String, String> map, @Field("bikeId") String bikeId, @Field("bikeNo") String bikeNo,
                                    @Field("lockNo") String lockNo, @Field("lockType") String lockType,
                                    @Field("orderId") String orderId, @Field("orderNo") String orderNo, @Field("longitude") String longitude,
                                    @Field("latitude") String latitude,
                                    @Field("address") String address, @Field("operationType") String operationType,
                                    @Field("operationExe") String operationExe, @Field("errorType") String errorType,
                                    @Field("errorCode") String errorCode, @Field("errorMsg") String errorMsg,
                                    @Field("bluetoothVersion") String bluetoothVersion, @Field("phoneModel") String phoneModel,
                                    @Field("phoneSysVersion") String phoneSysVersion);

    //个人信息
    @FormUrlEncoded
    @POST("v/user/user-info.json")
    Call<PersonalInfoBean> getPersonalInfo(@FieldMap Map<String, String> map);


    //违规记录
    @FormUrlEncoded
    @POST("kuaitu-bike/violation/punishment/queryviolation.json")
    Call<ViolRecordBean> getViolRecordedInfo(@FieldMap Map<String, String> map, @Field("pageNo") String pageNo, @Field("pageSize") String pageSize);

    /**
     * 获取充值页面轮播广告
     */
    @FormUrlEncoded
    @POST("v/account/recharge-ad")
    Call<RechargeAdBean> getRechargeAd(@FieldMap Map<String, String> map);


    /**
     * 任务车 电子围栏列表
     */
    @FormUrlEncoded
    @POST("kuaitu-bike/bike/redPackageHotspotList")
    Call<RedBikeHotSpotInfoBean> getRedPacketHotList(@FieldMap Map<String, String> map, @Field("latitude") String latitude, @Field("longitude") String longitude);

    /**
     * 单车是否在电子围栏内
     */
    @Deprecated
    @FormUrlEncoded
    @POST("kuaitu-bike/bike/isInPackageHotspot")
    Call<BaseBean> isInPacketHotsPot(@FieldMap Map<String, String> map, @Field("latitude") String latitude, @Field("longitude") String longitude);

    /**
     * APP判断用户还车位置
     */
    @FormUrlEncoded
    @POST("kuaitu-bike/violation/punishment/judgment")
    Call<JudgmentBean> judgmentInPacketHotsPot(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("latitude") String latitude, @Field("longitude") String longitude);

    /**
     * 查询当前用户有车提醒状态及网点列表
     */
    @FormUrlEncoded
    @POST("park/get-remind.json")
    Call<GetRemindBean> getRemind(@FieldMap Map<String, String> map, @Field("latitude") String latitude, @Field("longitude") String longitude,
                                  @Field("pageNo") String pageNo, @Field("pageSize") String pageSize);

    /**
     * 用户设置网点有车提醒
     *
     * @param parkIdStr    网点id，多个请用英文半角逗号隔开
     * @param remindMinute 有车提醒有效时间（分钟）
     * @param override     是否覆盖其他网点提醒 0-否 1-是 默认0
     */
    @FormUrlEncoded
    @POST("v/car/save-remind.json")
    Call<BaseBean> saveRemind(@FieldMap Map<String, String> map, @Field("parkIdStr") String parkIdStr, @Field("remindMinute") int remindMinute,
                              @Field("override") int override);

    /**
     * 用户取消网点有车提醒
     */
    @FormUrlEncoded
    @POST("v/car/cancel-remind.json")
    Call<BaseBean> cancelRemind(@FieldMap Map<String, String> map);

    /**
     * 查看网点电子围栏
     */
    @FormUrlEncoded
    @POST("v/car/fence-list.json")
    Call<FenceData> getFenceList(@FieldMap Map<String, String> map, @Field("latitude") String latitude, @Field("longitude") String longitude);

    /**
     * 摇一摇抽奖
     */
    @FormUrlEncoded
    @POST("v/prize/return-draw-prize-result")
    Call<ShakeResultBean> getShakePrize(@FieldMap Map<String, String> map, @Field("latitude") String latitude, @Field("longitude") String longitude,
                                        @Field("address") String address);

    /**
     * 领奖
     */
    @FormUrlEncoded
    @POST("v/prize/gain-prize")
    Call<AwardBean> receivePrize(@FieldMap Map<String, String> map, @Field("shakeId") String shakeId);

    //汽车整备提交
    @FormUrlEncoded
    @POST("v/order/upload-prepare.json")
    Call<ResultBean> commitSetup(@FieldMap Map<String, String> map, @Field("orderId") String orderId, @Field("pictureIdStr") String pictureIdStr, @Field("longitude") String longitude,
                                 @Field("latitude") String latitude);

    //检查是否享受汽车整备送优惠券活动
    @FormUrlEncoded
    @POST("v/order/prepare-condition.json")
    Call<CheckSetupBean> checkSetup(@FieldMap Map<String, String> map, @Field("orderId") String orderId);

    /**
     * 开奖的跑马灯数据
     */
    @FormUrlEncoded
    @POST("prize/gain-lottery-horse-race-lamp.json")
    Call<PraizeMarqueeBean> getPraizeMarqueeData(@FieldMap Map<String, String> map);
}





